package upload;

import javax.servlet.ServletException;
import javax.servlet.annotation.MultipartConfig;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.Part;
import java.io.IOException;

/**
 * Servlet 上传文件 的后端代码.
 *
 * Part getPart(String name) 获取请求中给定 name 的文件
 * Collection<Part> getParts() 获取所有的文件
 * String getSubmittedFileName() 获取提交的文件名
 * String getContentType() 获取提交的文件类型
 * long getSize() 获取文件的大小
 * void write(String path) 把提交的文件数据写入磁盘文件
 *
 */

@WebServlet("/upload")
// @MultipartConfig 针对 上传文件操作 的必要注解.
@MultipartConfig
public class UploadServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 这里的 myfile 和前端 input 框的name属性相对应.
        Part part = req.getPart("myfile");
        System.out.println(part.getSubmittedFileName()); // 取提交的文件名
        System.out.println(part.getSize()); // 获取文件的大小
        System.out.println(part.getContentType()); // 获取提交的文件名
        part.write("D:/Project/lover.png");

        resp.setContentType("text/html; charset=utf8");
        resp.getWriter().write("提交成功");
    }
}
